/*
 * @Author: error: error: git config user.name & please set dead value or install git && error: git config user.email & please set dead value or install git & please set dead value or install git
 * @Date: 2023-11-16 09:22:10
 * @LastEditors: zhangguliu1234 984556209@.com
 * @LastEditTime: 2024-01-11 17:39:38
 * @FilePath: \sample_project\main\main.c
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
#include <stdio.h>
#include <string.h>
#include "driver/gpio.h"
#include "sdkconfig.h"
#include "freertos/FreeRTOS.h"
#include "freertos/task.h"
#include "freertos/semphr.h"
#include "freertos/queue.h"
#include "lwip/sockets.h"
#include "lwip/dns.h"
#include "lwip/netdb.h"
#include "mqtt_client.h"
#include "led.h"
#include "esp_log.h"
#include "key.h"
#include "delay.h"
#include "my_uart.h"
#include "wifi.h"
#include "my_nvs.h"
#include "my_smartconfig.h"
#include "my_wss.h"
#include "cJSON.h"
#include "get_time.h"
#include "CRC16.h"
// #include "my_wss.h"

// static const char *TAG = "example";
// int state = 0;

void app_main(void)
{
   led_init();
   key_init();
   myuart_init();
   nvs_init();
   N2O_uart_init();

   // // wifi_init_sta();
   // scWIFI_init();
   connect_to_wifi();
   mqtt_app_start();

   // int i = 0;

   while (1)
   {
      // i = !i;
      // led_statue(i);
      // Read_N2O_concentration();
      vTaskDelay(1000 / portTICK_PERIOD_MS);
   }
}

// while (1)
// {
//    print_system_time();
//    vTaskDelay(200);
// }

// while (1)
// {
//    int i = Read_N2O_concentration();
//    vTaskDelay(200);
// }

//   xTaskCreate(rtc_task_example, "rtc_task_example", 4096, NULL, 10, NULL);

// wifi_init_sta();
// mqtt_app_start();

// scWIFI_init();
// wifi_scanALLAP();

// xTaskCreate(mynvs_task, "mynvs_task", 1024*2, NULL, configMAX_PRIORITIES, NULL);

// wifi_init_sta();
// vTaskDelay(2000);

//  xTaskCreate(rx_task, "uart_rx_task", 1024*2, NULL, configMAX_PRIORITIES, NULL);
//  xTaskCreate(tx_task, "uart_tx_task", 1024*2, NULL, configMAX_PRIORITIES-1, NULL);

// while (1)
// {
//     if (key_press() == 0)
//     {
//         state = ! state;
//         ESP_LOGI(TAG, "Turning the LED %s!", state == true ? "ON" : "OFF");
//         led_statue(state);
//     }
//     vTaskDelay(10);
// }

// void
//     initialize_sntp(void)
// {
//    ESP_LOGI(TAG, "Initializing SNTP");
//    sntp_setoperatingmode(SNTP_OPMODE_POLL);
//    sntp_setservername(0, "pool.ntp.org");
//    sntp_setservername(1, "ntp.aliyun.com");
//    sntp_setservername(2, "ntp.ntsc.ac.cn");
//    sntp_set_time_sync_notification_cb(time_sync_notification_cb);
// #ifdef CONFIG_SNTP_TIME_SYNC_METHOD_SMOOTH
//    sntp_set_sync_mode(SNTP_SYNC_MODE_SMOOTH);
// #endif
//    sntp_init();
//    int retry = 0;
//    while (sntp_get_sync_status() == SNTP_SYNC_STATUS_RESET && ++retry < 10)
//    {
//       ESP_LOGI(TAG, "Waiting for system time to be set... (%d/10)", retry);
//       vTaskDelay(2000 / portTICK_PERIOD_MS);
//    }
// }